package cz.najman.emdroid.ui;

import android.app.Application;
import android.os.Handler;
import cz.najman.emdroid.helper.EventHelper;
import cz.najman.emdroid.helper.EventInstitutionManagerHelper;
import cz.najman.emdroid.helper.PaymentInformationHelper;
import cz.najman.emdroid.helper.RegistrationStateHelper;
import cz.najman.emdroid.helper.UserHelper;
import cz.najman.emdroid.service.ForwardingResultReceiver;

/**
 * @author  Lukáš Najman
 */
public class EMDroidApplication extends Application {

	/* HELPER CLASSES */
	/**
	 */
	private EventHelper mEventHelper;
	/**
	 */
	private UserHelper mUserHelper;
	private RegistrationStateHelper mRegistrationStateHelper;
	private EventInstitutionManagerHelper mEventInstitutionManagerHelper;
	/**
	 */
	private PaymentInformationHelper mPaymentInformationHelper;
	private ForwardingResultReceiver mReceiver;

	@Override
	public void onCreate() {
		mReceiver = new ForwardingResultReceiver(new Handler());
		mEventHelper = new EventHelper(getApplicationContext(),mReceiver);
		mUserHelper = new UserHelper(getApplicationContext(),mReceiver);
		mRegistrationStateHelper = new RegistrationStateHelper(getApplicationContext(),mReceiver);
		mPaymentInformationHelper = new PaymentInformationHelper(getApplicationContext(),mReceiver);
		mEventInstitutionManagerHelper = new EventInstitutionManagerHelper(getApplicationContext(), mReceiver);
		super.onCreate();
	}

	/**
	 * @return the EventHelper
	 */
	public EventHelper getEventHelper() {
		return mEventHelper;
	}

	/**
	 * @param eventHelper
	 *            the EventHelper to set
	 */
	public void setEventHelper(EventHelper eventHelper) {
		this.mEventHelper = eventHelper;
	}

	/**
	 * @return the mUserHelper
	 */
	public UserHelper getUserHelper() {
		return mUserHelper;
	}

	/**
	 * @param mUserHelper
	 *            the mUserHelper to set
	 */
	public void setUserHelper(UserHelper userHelper) {
		this.mUserHelper = userHelper;
	}

	/**
	 * @return the PaymentInformationHelper
	 */
	public PaymentInformationHelper getPaymentInformationHelper() {
		return mPaymentInformationHelper;
	}

	/**
	 * @param paymentInformationHelper the PaymentInformationHelper to set
	 */
	public void setPaymentInformationHelper(
			PaymentInformationHelper paymentInformationHelper) {
		this.mPaymentInformationHelper = paymentInformationHelper;
	}

	/**
	 * @return the mRegistrationStateHelper
	 */
	public RegistrationStateHelper getRegistrationStateHelper() {
		return mRegistrationStateHelper;
	}

	/**
	 * @param mRegistrationStateHelper the mRegistrationStateHelper to set
	 */
	public void setRegistrationStateHelper(
			RegistrationStateHelper registrationStateHelper) {
		this.mRegistrationStateHelper = registrationStateHelper;
	}

	/**
	 * @return the mEventInstitutionManagerHelper
	 */
	public EventInstitutionManagerHelper getEventInstitutionManagerHelper() {
		return mEventInstitutionManagerHelper;
	}
	
	
	
	
	

}
